package com.jfs.qy.config.component;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;

/**
 * @Description 定时任务工具组件
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/11/4
 */
public interface TaskExecutorReactor {
    /**
     *  启用任务
     * @param task 任务
     * @param initialDelay 多少秒后执行
     * @param delay 每隔多少秒执行一次
     * @return
     */
    Future<?> schedule(Task task, long initialDelay, long delay);
    Future<?> schedule(Runnable runnable, long initialDelay, long delay);
    /**
     * 停止任务
     * @param key
     */
    void stop(String key);

    /**
     * 根据key判断任务是否已经开启
     * @return
     */
    boolean isRunning(String key);

    /**
     * 获取线程池对象
     * @return
     */
    ScheduledExecutorService getScheduledExecutorService();

}
